import bluebird from 'bluebird';
import * as queTempCore from '../queTemplate/core';
import * as questionCore from '../question/core';
import log from '../../../log';

module.exports = r => {
    r.get('/:page/:pagesize', ctx => {
        return queTempCore.get(ctx.params.page, ctx.params.pagesize, ctx.request.query, ctx.request.user)
            .then(ctx.done, ctx.fail);
    });
    r.get('/', ctx => queTempCore.find(ctx.query).then(ctx.done, ctx.fail));
    r.put('/status/:id', ctx => {
        return bluebird.method(() => {
            const status = parseInt(ctx.request.body.status, 10);
            log.info(`修改问卷${ctx.params.id}的状态:${status}`);
            if (!(status === 1 || status === 2)) {
                throw new Error('无效的问卷状态值');
            }
            return queTempCore.updateStatus(ctx.params.wjId, status).then(() => {});
        })()
        .then(ctx.done, ctx.fail);
    });
    r.post('/', ctx => {
        return queTempCore.create(ctx.request.user, ctx.request.body)
            .then(ctx.done, ctx.fail);
    });
    r.put('/:id', ctx => {
        return queTempCore.edit(ctx.params.id, ctx.request.body)
            .then(ctx.done, ctx.fail);
    });
    r.delete('/:id', ctx => {
        return queTempCore.del(ctx.params.id).then(ctx.done, ctx.fail);
    });
    r.put('/push/:id', ctx => {
        return queTempCore.push(ctx.params.id, ctx.request.body)
            .then(ctx.done, ctx.fail);
    });
    r.put('/end/:id', ctx => {
        return queTempCore.end(ctx.params.id, ctx.request.body)
            .then(ctx.done, ctx.fail);
    });
    //获取问卷问题
    r.get('/questions/:queTempId', ctx => {
        return questionCore.getQueTempQuestions(ctx.params.queTempId)
            .then(ctx.done, ctx.fail);
    });

    // 当用户再次打开问卷时，调用此接口，
    // 返回问卷详细信息：问卷标题、最大选择数、问题、选项、商品
    // 如果用户回答过就追加选择答案
    // 问题选项统计信息
    r.get('/:queTempId', ctx => queTempCore.getQueDetailsAndAnswers(ctx.params.queTempId, ctx.request.user).then(ctx.done, ctx.fail));
};
